import request from '@/utils/request'

// 查询护理计划列表
export function listNurse(query) {
  return request({
    url: '/serve/nurse/list',
    method: 'get',
    params: query
  })
}

// 查询护理计划详细
export function getNurse(id) {
  return request({
    url: '/serve/nurse/' + id,
    method: 'get'
  })
}

// 新增护理计划
export function addNurse(data) {
  return request({
    url: '/serve/nurse',
    method: 'post',
    data: data
  })
}

// 修改护理计划
export function updateNurse(data) {
  return request({
    url: '/serve/nurse',
    method: 'put',
    data: data
  })
}

// 删除护理计划
export function delNurse(id) {
  return request({
    url: '/serve/nurse/' + id,
    method: 'delete'
  })
}

export function listEnableNursingPlan(){
  return request({
    url: '/serve/nurse/enableList',
    method: 'get'
  })
}


/**
 * 新增护理计划（含关联护理项目）
 * @param {Object} data - 包含 planName、nursingItems 等字段的对象
 * @returns {Promise} - 请求Promise
 */
export function addWithItems(data) {
  return request({
    url: '/serve/nurse/addWithItems', // 与后端 @PostMapping 地址一致
    method: 'post',
    data: data // 传递请求体（含护理计划名称、关联的护理项目列表）
  })
}

/**
 * 修改护理计划（含关联护理项目）
 * 
@param {Object} data
 - 包含护理计划主表信息 + 关联护理项目列表的对象
 * 
@returns {Promise}
 - 请求Promise
 */
export function updateWithItems(data) {
  return request({
    url: '/serve/nurse/updateWithItems', // 与后端Controller的接口路径一致
    method: 'put', // 与后端@PutMapping请求方法一致
    data: data // 传递请求体（含护理计划名称、关联的护理项目列表等）
  })
}

/**
 * 计算护理计划的月费用
 * 
 * @param {Number} planId - 护理计划ID
 * @returns {Promise} - 返回月费用
 */
export function calculatePlanFee(planId) {
  return request({
    url: '/serve/nurse/calculateFee/' + planId,
    method: 'get'
  })
}